An Object-Oriented Simulator for the Apiary

نویسنده

  • Henry Lieberman
چکیده

This paper describes a simulator for the proposed Apiary, an object-oriented, message passing parallel machine for artificial intelligence applications, using the QCKV model of computation. The simulator implements an interpreter for the lowest level “virtual machine language” of the Apiary, specifying computations in terms of creating objects and sending messages rather than loading and storing registers. The simulator is itself programmed in the object-oriented style advocated by the actor philosophy, allowing experimentation with alternative implementation mechanisms without disturbing the behavior of the simulation. Technical details in the paper assume some familiarity with object-oriented programming and the actor formalism. Paper category: Support Software and Hardware 1. Should a parallel machine for AI be like a parallel machine for nhvsics? What does it mean to build a machine optimized for artificial intelligence? Let’s look at the process of building specialized machines in other domains. Mathematics and physics, like AI, are areas which have important problems where solutions are limited by constraints on computing power. In these areas, an accepted methodoiogy for optimizing machines involves identifying the inner loop of some intcrcsting problem, a small piece of code that takes a large percentage of computing resources. Then. this inner loop is impleln~nted at as low a level as is feasible. preferably in microcode or directly in hardware. If what’s t&ins the time in your problem is doing FFT’s, build an F‘F7‘ machine. Can Al use this approach? Probably not. We conjcc,ture that AI doesn’t have a simple “inner loop”, that an Al machine will have to be a f%t “general purpose” problem solver. just ::s p:of.lc :~i’c. ‘I lrc tlil‘fcrcnce is that in physics problems the pa~~crns 01‘ LoIllpul:llion tend to be st,ltic and yredrcrtrhie. where:i< in Al the patterns of computation arc likely to be dynamic and thcrcfbre un~~l-t~~rlicl~zDI. An AI program attempting to solve a problem may have no idea which one of a number of heuristics will be useful before it starts to work on the problem. It may even have to learn or invent new solution methods as it goes along. Some specialized algorithms will undoubtedly be useful. such as pattern matching, set intersection and searching, but probably no one algorithm will be so dominant as to warrant tuning an Ai machine to just that algorithm. So what can you do to optimize a machine for unpredictable computations? First, you optimize the machine to take advantage of large amounts of parallelism. It will soon be more important to take advantage of the potential parallelism in a computation than to minimize the number of machine cycles used by a computation. It is important to optimize for flexibility, avoiding any sort of centralized control which might become a bottleneck. A consequence is that all resources in the machine should be allocated dynamically, including both memory and processor resources. Work should be distributed among parts of the machine as evenly as possible, to take maximum advantage of parallelism. Rather than dedicating special purpose hardware to particular algorithms, it is preferable to have many general purpose processors able to run parts of algorithms as the need arises. Computations should be able to move from processor to processor, even while they are running. Stored objects should be able to move from the memory of one processor to the memory of another processor without affecting programs that use the objects. The programmer should be able to program the machine pretending that an “infinite” number of processors are available, just as garbage collection and virtual memory let the programmer pretend an “infinite” number of memory cells arc available. The system should time-share available physical processors, just as virtual memory systems time-share the use of physical memory. Simple allocation strategies with good average behavior [like the least-rcccntly-used paging algorithm] should bc used to manage resource allocation. These are the design principles that serve as our criteria for a parallel machine for Al. The actor InCJdd of compu&tion, dc::cr-ibcd in [I]. 1.11. [,lJ. 151 1 7rovrdcs ;I 17~~s for dtGgning a machine which will meet thcsc criteria. 241 From: AAAI-83 Proceedings. Copyright ©1983, AAAI (www.aaai.org). All rights reserved.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Declarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey

One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...

متن کامل

Objects Identification in Object-Oriented Software Development - A Taxonomy and Survey on Techniques

Analysis and design of object oriented is onemodern paradigms for developing a system. In this paradigm, there are several objects and each object plays some specific roles. Identifying objects (and classes) is one of the most important steps in the object-oriented paradigm. This paper makes a literature review over techniques to identify objects and then presents six taxonomies for them. The f...

متن کامل

Modelsaz: An Object-Oriented Computer-Aided Modeling Environment

Modeling and simulation of processing plants are widely used in industry. Construction of a mathematical model for a plant is a time-consuming and error-prone task. In light of extensive advancements in computer science (both hardware and software), computers are becoming a necessary instrument in industrial activities. Many software tools for modeling, simulation and optimization of proces...

متن کامل

On Attributes of Objects in Object-Oriented Software Analysis

One of the modern paradigms to develop a system is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles. There is a sequence of activities to develop an analysis model. In the first step, we work in developing an initial use case model. Then in the second step, they identify a number of concepts and build a glossary of partic...

متن کامل

Availability evaluation of Software architecture of object oriented Style using coloured Petri nets

Software architecture is one of the most fundamental products in the process of software development in the areas of behavioral or non- behavioral features like availability or transformability change. There are different ways to evaluate software architecture one of which is the creation of application model. An executable model of software architecture is an official description of architectu...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1983